from devicetest.aw.OpenHarmony import CommonOH
from devicetest.core.test_case import TestCase, Step

from aw.common import common_setup, common_teardown
from aw.pom import Memorandum, Keyboard


class PreTest_RK3568_Tooling_Memorandum_0300(TestCase, Memorandum):
    # 预置条件：
    # 烧写目标版本后，正常进入桌面
    # 测试步骤：
    # 1.进入桌面，点击备忘录应用，点击收缩文件夹，点击“新建”按钮
    # 2.输入名称，文件夹标签颜色选择
    # 3.点击取消/保存按钮
    # 预期结果：
    # 1.弹出新建文件夹弹窗
    # 2.点击名称可唤醒输入法正常输入，文件夹标签颜色可随意切换
    # 3.点击取消按钮，文件夹不会保存/点击保存按钮，笔记中显示新建文件夹名称

    def __init__(self, controllers):
        self.TAG = self.__class__.__name__
        TestCase.__init__(self, self.TAG, controllers)

    def setup(self):
        common_setup(self.Phone1)

    def process(self):
        Step('步骤1：进入桌面，点击备忘录应用，点击收缩文件夹，点击“新建”按钮')
        CommonOH.startAbility(self.Phone1, self.ability_name, self.bundle_name)
        CommonOH.wait(self.Phone1, 1)
        # (72,128)为收缩文件夹的坐标
        CommonOH.click(self.Phone1, **self.open_menu)
        CommonOH.touchByText(self.Phone1, '新建')
        Step('预期结果1：弹出新建文件夹弹窗')
        CommonOH.checkIfTextExist(self.Phone1, '新建文件夹')
        Step('步骤2：输入名称，文件夹标签颜色选择')
        # 点击新建文件夹的输入框
        CommonOH.click(self.Phone1, **self.new_folder_input_area)
        Step('预期结果2：点击名称可唤醒输入法正常输入，文件夹标签颜色可随意切换')
        CommonOH.checkIfTextExist(self.Phone1, 'space')
        Step('步骤3：点击取消')
        # 点击新建文件夹的输入框
        CommonOH.touchByText(self.Phone1, '取消')
        CommonOH.click(self.Phone1, **self.new_folder_input_area)
        Step('预期结果3：点击取消按钮，文件夹不会保存/点击保存按钮，笔记中显示新建文件夹名称')
        CommonOH.checkIfTextExist(self.Phone1, '新建文件夹', expect=False)
        Step('步骤4：点击保存')
        # 点击新建文件夹的输入框
        CommonOH.touchByText(self.Phone1, '新建')
        CommonOH.click(self.Phone1, **self.new_folder_input_area)
        # 点击键盘上的字母i或者8，主要是为了后续判断
        CommonOH.click(self.Phone1, **Keyboard.key_i)
        CommonOH.touchByText(self.Phone1, '保存')
        Step('预期结果4：点击保存按钮，笔记中显示新建文件夹名称')
        try:
            CommonOH.checkIfTextExist(self.Phone1, 'i')
        except:
            CommonOH.checkIfTextExist(self.Phone1, '8')

    def teardown(self):
        common_teardown(self.Phone1, self.bundle_name)
